// vue.config.js
const path = require('path');

function resolve(dir) {
  return path.join(__dirname, dir);
}
module.exports = {
  outputDir: '../../static/www',//静态资源打包目录
  publicPath: process.env.NODE_ENV === 'production' ? '../../../www' : '/',//静态资源前缀，静态资源引入路径
  indexPath: "../../templates/www/dist/index.html",//index.html打包目录，此时根目录基于outputDir
  // assetsPublicPath: './',
  productionSourceMap: true,
  // 生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)
  integrity: false,
  // webpack相关配置
  // css: {
  //   // 是否分离css（插件ExtractTextPlugin）
  //   extract: true,
  //   // 是否开启 CSS source maps
  //   sourceMap: false,
  //   loaderOptions: {
  //     sass: {
  //       additionalData: `@import "~@/assets/common/css/theme.scss";`
  //     }
  //   }
  // },
  chainWebpack: config => {
    /**
     * 覆盖 Webpack 配置
     * Vue Cli4 配置了 mini-css-extract-plugin 的 publicPath ，对相对路径进行了特定处理，但却没有考虑多层级页面的情况。
     * 配置css中 图片资源路径也为 publicPath
     */
    // const isProd = process.env.NODE_ENV === 'production';
    // const extract = isProd;
    // const shadowMode = !!process.env.VUE_CLI_CSS_SHADOW_MODE;
    // const shouldExtract = extract !== false && !shadowMode;
    // if (shouldExtract) {
    //   [
    //     { lang: 'css', test: /\.css$/ },
    //     { lang: 'postcss', test: /\.p(ost)?css$/ },
    //     { lang: 'scss', test: /\.scss$/ },
    //     { lang: 'sass', test: /\.sass$/ },
    //     { lang: 'less', test: /\.less$/ },
    //     { lang: 'stylus', test: /\.styl(us)?$/ },
    //   ].forEach(({ lang, test }) => {
    //     const baseRule = config.module.rule(lang).test(test);
    //     [
    //       // rules for <style lang="module">
    //       baseRule.oneOf('vue-modules').resourceQuery(/module/),
    //       // rules for <style>
    //       baseRule.oneOf('vue').resourceQuery(/\?vue/),
    //       // rules for *.module.* files
    //       baseRule.oneOf('normal-modules').test(/\.module\.\w+$/),
    //       // rules for normal CSS imports
    //       baseRule.oneOf('normal'),
    //     ].forEach(rule => {
    //       rule.use('extract-css-loader')
    //         .loader(require('mini-css-extract-plugin').loader)
    //         .options({
    //           hmr: !isProd,
    //         });
    //     });
    //   });
    // }
    // 常用alias
    config.resolve.alias
      .set('@', resolve('src'))
      .set('@assets', resolve('src/assets'))
    // config
    //   .plugin('webpack-bundle-analyzer')
    //   .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
    config.performance
      .set('hints', false)

    // 移除 preload 插件
    config.plugins.delete('preload')
    // 移除 prefetch 插件
    config.plugins.delete('prefetch')

  },

  configureWebpack: {

    plugins: []
  },
  pluginOptions:
    {}
  ,
  devServer: {
    proxy: { //配置多个跨域
      "/apiDev": {
        target: "https://dev.sgcctd.cn",
        changeOrigin: true,
        //ws: true,//websocket支持
        secure: false,
        pathRewrite: {
          "^/apiDev": "/api"
        }
      },
      "/apiImg": {
        target: "https://dev.sgcctd.cn",
        changeOrigin: true,
        //ws: true,//websocket支持
        secure: false,
        pathRewrite: {
          "^/apiImg": "/"
        }
      },

    }
  },
  lintOnSave: false
}